Wireless communication networks provide various communication services such as telephony, video, data, messaging, and broadcasts. Such networks support communications for multiple users by sharing the available network resources. One example of such a network is the UMTS Terrestrial Radio Access Network (UTRAN). The UTRAN is the radio access network (RAN) defined as a part of the Universal Mobile Telecommunications System (UMTS), a third generation (3G) mobile phone technology. The UMTS, which is the successor to Global System for Mobile Communications (GSM) technologies, currently supports various air interface standards, such as Wideband-Code Division Multiple Access (W-CDMA), Time Division-Code Division Multiple Access (TD-CDMA), and Time Division-Synchronous Code Division Multiple Access (TD-SCDMA). The UMTS supports enhanced 3G data communications protocols, such as High Speed Packet Access (HSPA), which provides greater data transfer speeds and capacity to associated UMTS networks. Other example networks include GPRS/EDGE, CDMA/DO, or EUTRAN (4G LTE). Such wireless communication networks may follow standards implemented by the European Telecommunications Standards Institute (ETSI) or the Third Generation Partnership Project (3GPP), for example.
Contemporary wireless devices frequently include a subscriber identity module (SIM) card to facilitate communication with a communication network via a subscription for the designated voice or data subscription of the wireless device. SIM cards include information and provide identity documentation, authentication, and other information regarding a user of the wireless device via an embedded integrated circuit component. The integrated circuit component securely stores an international mobile subscriber identity (IMSI) with a key that is used to identify and authenticate subscribers on connected mobile devices, such as cell phones, tablets, and computers. Various other information may also be stored on the SIM card, such as an address book, text messages, network names, or other carrier or subscriber information. This information may also be read from the SIM card and be made available to the wireless device.
SIM cards can additionally contain embedded commands that define how the device should interact with carriers, such as via cellular data requests or voice calls. The commands also provide an interface for interacting with the host device, such as by displaying menus or prompting a user for input. These commands are implemented independently of any associated device or network, thus enabling a decoupled interactive exchange between a network application and host device or end user. Certain commands form a standard toolkit, such as the SIM Application Toolkit (“STK”), which is a standard of the GSM system. In more sophisticated SIM cards, the STK is a Dynamic SIM Toolkit (“DSTK”) and the STK interpreter is a DSTK interpreter. Toolkit commands are often generally referred to as “proactive commands.”
Service providers often generate content corresponding to a message that is to be sent to a user. Such messages are often written in a markup language (for example, Wireless Internet Gateway Wireless Markup Language (“WIG WML”), SIM @lliance Toolbox Markup Language (“S@TML”), Java Markup Language (“JavaML”)). The content is sent to a gateway, which prepares the message and forwards the message to the user. This gateway is known as the Universal Gateway (“UG”). The message includes an instruction, which itself is a SIM card application (for example, a wiblet, a s@tlet, a Java applet) that is received by a portable device belonging to the user. The portable device contains a SIM card including its own memory, which stores a DSTK. Properly programmed, the SIM card functions as a DSTK interpreter, which is configured to interpret the instruction contained in the message. Depending on whether the instruction comprises a wiblet, a s@tlet, or a Java applet, the DSTK interpreter functions as SmartTrust Wib (“Wib”), a SIM @lliance Toolbox (“S@T”) interpreter, or a Java interpreter, respectively. The DSTK interpreter interprets the instructions to implement actions or commands included in the DSTK. Some of these commands operate independently of the portable device, and other commands are directed to the portable device, such as a command to display a string of text or ask the user for an input.
Traditionally, SIM cards contained a single subscriber identity profile containing subscription information for a single user subscription plan for a single carrier. A user wishing to communicate via different carriers or networks or switch between wireless subscriptions on a single device could only do so by replacing a SIM card with a corresponding SIM card for the desired subscription plan. Recently, however, SIM cards are being designed to accommodate multiple operator profiles on a single SIM card. These cards are designed with a container for each operator profile with a dedicated set of commands (e.g., toolkit) for interoperating between the carrier and device.
A profile container is an object containing a complete universal integrated circuit card (“UICC”) file system. The profile in use is generally described as the active profile. The active profile is generally assigned the basic logical channel, which is often logical channel 00. In existing implementations, only a single profile can be active at one time. These implementations switch between active profiles on a device via a local device proxy profile switching mechanism or by a server initiated instruction. Switching active profiles includes, among other things, reassigning basic logical channel 00 to the new active profile. However, it may be advantageous to accommodate multiple active profiles simultaneously without switching from one active profile to another.